/**
 * Created by dell on 2018/12/10.
 */
/*
业务模块
 */

const data = require('./data.json');
const path = require('path');
const fs = require('fs');
const db = require('./db.js');

//自动生成图书编号（自增）
let maxBookCode= ()=>{
    let arr = [];
    data.forEach((item)=>{
       arr.push(item.id);
    });
    //Math.max.apply（）得到数组最大值
    return Math.max.apply(null,arr);
}
//渲染主页面
exports.showIndex = (req,res) =>{
    let sql = 'select * from book';
    db.base(sql,null,(result)=>{
        res.render('index',{list : result});
    });
}

//跳转到添加图书的页面
 exports.toAddBook  = (req,res) =>{
     res.render('addBook',{});
 }

//添加图书保存数据
//数据库语言编写
exports.addBook = (req,res)=>{
    //获取表单数据
    let info = req.body;
    //所有的表单的数据
    let book = {};
    //表单数据遍历一遍
    // for-in一般用于循环遍历对象的属性
    for(let key in info){
        book[key] = info[key];
    }
    let sql = 'insert into book set ?';
    db.base(sql,book,(result)=>{
        if(result.affectedRows == 1){
            res.redirect('/');//跳转到主页面（也就是根目录）
        }
    });
}
//文件保存数据
// exports.addBook = (req,res)=>{
//     //获取表单数据
//     let info = req.body;
//     //所有的表单的数据
//     let book = {};
//     //表单数据遍历一遍
//     // for-in一般用于循环遍历对象的属性
//         for(let key in info){
//         book[key] = info[key];
//     }
//     book.id = maxBookCode() + 1 ;
//     data.push(book);
//     //把内存中的数据写入文件(第二种写法)
//     // writeDataToFile(res);
//     //第一种写法
//     fs.writeFile(path.join(__dirname,'data.json'),JSON.stringify(data),(err)=>{
//         if(err){
//             res.send('server error');
//         }
//         //重定向------重新再发送一遍
//         res.redirect('/');
//     });
// }
//跳转编辑图书页面
exports.toEditBook = (req,res) =>{
    let id = req.query.id;
    let sql = 'select * from book where id=?';
    let data = [id];
    db.base(sql,data,(result)=>{
        //重新渲染
        res.render('editBook',result[0]);
    });
}
// exports.toEditBook = (req,res) =>{
//     let id = req.query.id;
//     let book = {};
//     //遍历
//     data.forEach((item)=>{
//        if(id == item.id){
//             book = item;
//             return;
//        }
//     });
//     //重新渲染
//     res.render('editBook',book);
// }
//编辑图书页面并提交
exports.editBook = (req,res)=>{
    let info = req.body;
    let sql = 'update book set name=?,author=?,category=?,description=? where id=?';
    let data=[info.name,info.author,info.category,info.description,info.id];
    db.base(sql,data,(result)=>{
        if(result.affectedRows == 1){
            res.redirect('/');
        }
    });
}
// exports.editBook = (req,res)=>{
//     let info = req.body;
//     data.forEach((item)=>{
//         if(info.id == item.id){
//             for(let key in info){
//                 item[key] = info[key];
//             }
//             return;
//         }
//     });
//     //把内存中的数据写入文件
//     fs.writeFile(path.join(__dirname,'data.json'),JSON.stringify(data),(err)=>{
//         if(err){
//             res.send('server error');
//         }
//         //重定向------重新再发送一遍
//         res.redirect('/');
//     });
// }
//删除图书信息
exports.deleteBook = (req,res)=>{
    let id = req.query.id;
    let sql = 'delete from book where id=?';
    let data = [id];
    db.base(sql,data,(result)=>{
       if(result.affectedRows == 1){
           res.redirect('/');
       }
    });
}